<#include 'common/java.ftl'>
<#include 'common/swagger.ftl'>
<@commonJavaFileHeader className=classInfo.className+"Service" classComment=classInfo.classComment+"Service" />

package ${packageName}.${subPackageName};

import com.github.pagehelper.PageInfo;
import com.win.dfas.common.exception.WinException;
import com.win.dfas.common.vo.WinResponseData;
import <#if classInfo.existsDeleteFlagField>com.win.dfas.database.extension.service.IBaseService;<#else>com.baomidou.mybatisplus.extension.service.IService;</#if>
import ${packageName}.entity.${classInfo.className};
import ${packageName}.vo.request.${classInfo.className}AddReqVO;
import ${packageName}.vo.request.${classInfo.className}UpdateReqVO;
import ${packageName}.vo.request.${classInfo.className}QryReqVO;
import ${packageName}.vo.response.${classInfo.className}RepVO;

import java.util.List;

<@commonJavaClassCommnet subPackageName=subPackageName  className=classInfo.className+"Service" classComment=classInfo.classComment+"Service"/>
public interface ${classInfo.className}Service extends <#if classInfo.existsDeleteFlagField>IBaseService<#else>IService</#if><${classInfo.className}>{

    /** 业务类型 */
    public static final String BUSINESS_TYPE = "";

    /** 表名:${classInfo.classComment} */
    public static final String TABLE_NAME = "${classInfo.tableName}";

    <@commonJavaMethodAndCommnet methodDesc="新增" methodName="save" returnType="int" paramType=classInfo.className+"AddReqVO" paramName="reqVO" paramDesc="新增请求VO"/>;

    <@commonJavaMethodAndCommnet methodDesc="修改" methodName="updateById" returnType="int" paramType=classInfo.className+"UpdateReqVO" paramName="reqVO" paramDesc="修改请求VO"/>;

    <@commonJavaMethodAndCommnet methodDesc="逻辑删除" methodName="deleteById" returnType="int" paramType="Long" paramName="id" paramDesc="主键Id"/>;

    <@commonJavaMethodAndCommnet methodDesc="查询" methodName="getById" returnType=classInfo.className+"RepVO" paramType="Long" paramName="id" paramDesc="主键Id"/>;

    <@commonJavaMethodAndCommnet methodDesc="列表查询" methodName="list" returnType="List<"+classInfo.className+"RepVO>" paramType=classInfo.className+"QryReqVO" paramName="reqVO" paramDesc="查询请求VO"/>;

    <@commonJavaMethodAndCommnet methodDesc="分页查询" methodName="pageList" returnType="PageInfo<"+classInfo.className+"RepVO>" paramType=classInfo.className+"QryReqVO" paramName="reqVO" paramDesc="查询请求VO"/>;

    <@commonJavaMethodAndCommnet methodDesc="批量新增" methodName="saveList" returnType="int" paramType="List<"+classInfo.className+"AddReqVO>" paramName="entityList" paramDesc="新增请求VO"/>;

    <@commonJavaMethodAndCommnet methodDesc="批量修改" methodName="updateByIds" returnType="int" paramType="List<"+classInfo.className+"UpdateReqVO>" paramName="entityList" paramDesc="修改请求VO"/>;

    <@commonJavaMethodAndCommnet methodDesc="批量删除" methodName="deleteByIds" returnType="int" paramType="List<Long>" paramName="ids" paramDesc="主键Id"/>;

    <@commonJavaMethodAndCommnet methodDesc="批量查询" methodName="getByIds" returnType="List<"+classInfo.className+"RepVO>" paramType="List<Long>" paramName="ids" paramDesc="主键Id"/>;

    <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
    <#list classInfo.fieldList as fieldItem >
    <#if fieldItem.fieldName == "auditStatus">
    <@commonJavaMethodAndCommnet methodDesc="更新审核状态为已审核" methodName="updateAuditById" returnType="int" paramType="Long" paramName="id" paramDesc="主键Id"/>;
    <@commonJavaMethodAndCommnet methodDesc="更新审核状态为未审核" methodName="updateRevertAuditById" returnType="int" paramType="Long" paramName="id" paramDesc="主键Id"/>;
	</#if>
	</#list>
	</#if>
}
